Common cloud computing data centers are based on an architecture that includes a large number of processor boards mounted in rows of racks with associated switches for communications among the processors and with outside network elements. Cloud computing often involves virtual machines that are activated to support an application or a computing process. A network manager or cloud controller facilitates connections among the virtual machines and allocates cloud computing resources for particular applications or computing processes.
With increased acceptance and use of cloud computing systems, a wider variety of a capabilities are needed. For example, some applications require a relatively large amount of processing. One way to take advantage of the multiple processors associated with a cloud system is to divide an application into a number of subtasks that are executed in parallel on separate processors or virtual machines, which reduces computation time. Known techniques for implementing parallel computing include the MapReduce procedure proposed by Google and one implementation of that procedure is accomplished using a Hadoop open source software framework introduced by Apache. Such parallel computing arrangements introduce efficiencies and economies.
One of the drawbacks associated with known approaches is that the resources allocated for parallel computing sometimes have to handle large amounts of data traffic and relatively smaller amounts of control traffic. If an insufficient amount of the cloud computing resources are allocated to the parallel computing task, the user may experience poor performance or delays when there are large data transfers. If too much of the resource is allocated, then much of the resource may go unused during periods when there is only minor control traffic communication among the processors or virtual machines.